<!Doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>jquery和CSS3带倒影的3D万花筒旋转动画特效</title>
	<link rel="stylesheet" href="css/normalize.css"/>
	<link rel="stylesheet" href="css/htmleaf-demo.css"/>
	<style>
		*{margin:0;padding: 0;}
		.pic{
			width: 120px;
			height: 180px;
			margin: 150px auto 0;
			position: relative;
			/*transform 旋转元素*/
			transform-style:preserve-3d;
			transform:perspective(800px) rotateX(-10deg) rotateY(0deg);
		}
		body{background-color: #66677c;overflow:hidden;}

		.pic img{
			position: absolute;
			width: 100%;
			height: 100%;
			border-radius: 5px;
			box-shadow: 0px 0px 10px #fff;
			/*倒影的设置*/
			-webkit-box-reflect:below 10px -webkit-linear-gradient(top,rgba(0,0,0,0) 50%,rgba(0,0,0,.5) 100%);
		}
		.pic p{
			width: 1200px;
			height: 1200px;
			background: -webkit-radial-gradient(center center,600px 600px,rgba(255,255,255,.5),rgba(0,0,0,0));
			position: absolute;
			top:100%;left:50%;
			margin-top: -600px;
			margin-left: -600px;
			border-radius:600px;
			transform:rotateX(90deg);
		}
	</style>
</head>
<body>
<div class="htmleaf-container">
	<header class="htmleaf-header">
		<h1>jquery和CSS3带倒影的3D万花筒旋转动画特效</h1>
		<div class="htmleaf-links">
			<a class="htmleaf-icon icon-htmleaf-home-outline" href="javascript:void(0)" title="A5源码"><span> A5源码</span></a>
			<a class="htmleaf-icon icon-htmleaf-arrow-forward-outline" href="javascript:void(0)" title="返回下载页"><span> 返回下载页</span></a>
		</div>
	</header>
	<div class="pic">
		<img src="img/1.jpg"/>
		<img src="img/2.jpg" />
		<img src="img/3.jpg"/>
		<img src="img/4.jpg"/>
		<img src="img/5.jpg"/>
		<img src="img/6.jpg"/>
		<img src="img/7.jpg"/>
		<img src="img/8.jpg"/>
		<img src="img/9.jpg"/>
		<img src="img/10.jpg"/>
		<p></p>
	</div>
</div>
</body>
</html>
<script src="js/jquery-1.11.0.min.js"></script>
<script>
	$(function(){

		var imgL=$(".pic img").size();
		var deg=360/imgL;
		var roY=0,roX=-10;
		var xN=0,yN=0;
		var play=null;

		$(".pic img").each(function(i){
			$(this).css({
				<!--translateZ 定义2d旋转沿着z轴-->
				"transform":"rotateY("+i*deg+"deg) translateZ(300px)"	});
			<!--防止图片被拖拽-->
			$(this).attr('ondragstart','return false');
		});

		$(document).mousedown(function(ev){
			var x_=ev.clientX;
			var y_=ev.clientY;
			clearInterval(play);
//			console.log('我按下了');
			$(this).bind('mousemove',function(ev){
				/*获取当前鼠标的坐标*/
				var x=ev.clientX;
				var y=ev.clientY;
				/*两次坐标之间的距离*/
				xN=x-x_;
				yN=y-y_;

				roY+=xN*0.2;
				roX-=yN*0.1;
//				console.log('移动');
				//$('body').append('<div style="width:5px;height:5px;position:absolute;top:'+y+'px;left:'+x+'px;background-color:red"></div>');

				$('.pic').css({
					transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'
				});
				/*之前的鼠标坐标*/
				x_=ev.clientX;
				y_=ev.clientY;

			});
		}).mouseup(function(){
			$(this).unbind('mousemove');
			var play=setInterval(function(){

				xN*=0.95;
				yN*=0.95;
				if(Math.abs(xN)<1 && Math.abs(yN)<1){
					clearInterval(play);
				}
				roY+=xN*0.2;
				roX-=yN*0.1;
				$('.pic').css({
					transform:'perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'
				});

			},30);

		});

	});
</script>